/**
 * 商品模块校验文件
 */

const joi = require('joi');
const { messages, validPage } = require('./common');

/**
 * 校验添加
 */
const validAdd = joi.object({
    name: joi.string().label('商品名称').required().empty().max(100).messages(messages),
    oldPrice: joi.number().label('旧价格').required().min(0).messages(messages),
    price: joi.number().label('价格').required().min(0).messages(messages),
    sku: joi.number().integer().label('库存').min(0).required().messages(messages),
    class_id: joi.number().integer().label('分类id').required().min(1).messages(messages),
    weight: joi.number().label('重量').required().min(0).messages(messages),
});

/**
 * 校验修改
 */
const validUpdate = joi.object({
    id: joi.number().integer().label('id').min(1).required().messages(messages),
    quantity: joi.number().integer().label('剩余数量').min(0).required().messages(messages),
}).concat(validAdd);

/**
 * 校验更改状态
 */
const validChangeStatus = joi.object({
    id: joi.number().integer().label('id').min(1).required().messages(messages),
    status: joi.number().valid(0, 1).label('状态').required().messages(messages)
});

/**
 * 校验搜索
 */
const validSearch = joi.object({
    name: joi.string().label('商品名称').allow('', null).max(100).messages(messages),
    price: joi.number().label('最低价格').min(0).allow('', null).messages(messages),
    end_price: joi.number().label('最高价格').min(0).allow('', null).messages(messages),
    class_id: joi.number().integer().label('分类id').allow('', null).min(1).messages(messages),
    status: joi.number().valid(0, 1).label('状态').allow('', null).messages(messages)
}).concat(validPage);

module.exports = {
    validAdd,
    validUpdate,
    validSearch,
    validChangeStatus
}